package edu.sjb.map;

import edu.sjb.map.prizes.Coin;
import edu.sjb.map.prizes.Flower;
import edu.sjb.map.prizes.Mushroom;
import edu.sjb.map.prizes.Mushroom1UP;
import edu.sjb.map.prizes.NuclearBomb;
import edu.sjb.map.prizes.PrizeQueue;
import edu.sjb.map.prizes.Star;

public abstract class MapBrickFactory {
	
	public static MapBrick commonBrick(boolean qm) {
		return new MapBrick(qm, false, true, new PrizeQueue());
	}
	
	public static MapBrick oneCoinBrick(boolean qm, boolean o) {
		PrizeQueue pq = new PrizeQueue();
		pq.add(new Coin());
		return new MapBrick(qm, true, o, pq);
	}
	
	public static MapBrick tenCoinBrick(boolean qm) {
		PrizeQueue pq = new PrizeQueue();
		for (int i = 0; i < 10; i++) {
			pq.add(new Coin());
		}
		return new MapBrick(qm, true, true, pq);
	}
	
	public static MapBrick solidBrick() {
		return new MapBrick(false, true, false, new PrizeQueue());
	}
	
	public static MapBrick mushroomBrick() {
		PrizeQueue pq = new PrizeQueue();
		pq.add(new Mushroom());
		return new MapBrick(true, true, true, pq);
	}
	
	public static MapBrick flowerBrick() {
		PrizeQueue pq = new PrizeQueue();
		pq.add(new Flower());
		return new MapBrick(true, true, true, pq);
	}
	
	public static MapBrick mushroom1UPBrick(boolean o) {
		PrizeQueue pq = new PrizeQueue();
		pq.add(new Mushroom1UP());
		return new MapBrick(true, true, o, pq);
	}
	
	public static MapBrick bombBrick() {
		PrizeQueue pq = new PrizeQueue();
		pq.add(new NuclearBomb());
		return new MapBrick(true, true, true, pq);
	}

	public static MapBrick starBrick() {
		PrizeQueue pq = new PrizeQueue();
		pq.add(new Star());
		return new MapBrick(true, true, true, pq);
	}

}
